package com.xnyzc.lhy.mis.entity.cms.driver;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.Version;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 司机管理添加的用户信息实体类，用于接收前台传来的信息
 *
 * @author zhaolijie
 * @date 2019-08-23 18:21
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "接收司机添加的信息", description = "接收司机添加的信息")
public class DriverUserInfo implements Serializable {

    private static final long serialVersionUID = -288037385402384698L;

    @ApiModelProperty(value = "用户ID(使用Snowflake生成)")
    private Long driverId;

    @ApiModelProperty(value = "手机号码")
    private String driverPhone;

    @ApiModelProperty(value = "登录账号")
    private String loginAccount;

    @ApiModelProperty(value = "司机姓名")
    private String driverName;

    @ApiModelProperty(value = "用户昵称")
    private String nickName;

    @ApiModelProperty(value = "头像ID")
    private Long avatarFileId;

    @ApiModelProperty(value = "头像Url")
    private String avatarUrl;

    @ApiModelProperty(value = "账号状态(0-正常 1-待提交 2-待审核 3-审核驳回 4-未激活 5-封号中)")
    private Integer accountStatus;

    @ApiModelProperty(value = "账号状态(0-正常 1-待提交 2-待审核 3-审核驳回 4-未激活 5-封号中)")
    private String accountStatusStr;

    @ApiModelProperty(value = "车牌号")
    private String vehNo;

    @ApiModelProperty(value = "司机类型（0：个人；1：车队）")
    private Integer driverType;

    @ApiModelProperty(value = "司机类型（0：个人；1：车队）")
    private String driverTypeStr;

    @ApiModelProperty(value = "车队")
    private String vehicleTeam;

    @ApiModelProperty(value = "车辆类型")
    private Integer vehType;

    @ApiModelProperty(value = "车辆类型展示")
    private String vehTypeStr;

    @ApiModelProperty(value = "网约车从业资格证")
    private String professionalQualificationNumber;

    @ApiModelProperty(value = "注册时间")
    private Date createTime;

    @ApiModelProperty(value = "首次登录时间")
    private Date firstLoginDate;

    @ApiModelProperty(value = "完成首单时间")
    private Date completeFirstSingleDate;

    @ApiModelProperty(value = "注册时间展示")
    private String createTimeStr;

    @ApiModelProperty(value = "首次登录时间展示")
    private String firstLoginDateStr;

    @ApiModelProperty(value = "完成首单时间展示")
    private String completeFirstSingleDateStr;

    @ApiModelProperty(value = "身份证正面图片")
    private Long identityPositiveFileId;

    @ApiModelProperty(value = "身份证正面图片Url")
    private String identityPositiveUrl;

    @ApiModelProperty(value = "身份证反面照片")
    private Long identityOtherFileId;

    @ApiModelProperty(value = "身份证反面照片Url")
    private String identityOtherUrl;

    @ApiModelProperty(value = "驾驶证正面图片")
    private Long driveLicenseFileId;

    @ApiModelProperty(value = "驾驶证正面图片Url")
    private String driveLicenseUrl;

    @ApiModelProperty(value = "驾驶证另外一面")
    private Long driveOtherLicenseFileId;

    @ApiModelProperty(value = "驾驶证另外一面Url")
    private String driveOtherLicenseUrl;

    @ApiModelProperty(value = "网约车从业资格证正面图片")
    private Long professionalQualificationFileId;

    @ApiModelProperty(value = "网约车从业资格证正面图片Url")
    private String professionalQualificationUrl;

    @ApiModelProperty(value = "驾照类型")
    private String driveLicenseType;

    @ApiModelProperty(value = "驾驶证编号")
    private String driveLicenseNo;

    @ApiModelProperty(value = "驾驶证起始日期")
    private Date driverStartDate;

    @ApiModelProperty(value = "驾驶证到期时间")
    private Date driveLicenseDuedate;

    @ApiModelProperty(value = "驾驶证起始日期")
    private String driverStartDateStr;

    @ApiModelProperty(value = "驾驶证到期时间")
    private String driveLicenseDuedateStr;

    @ApiModelProperty(value = "银行卡账户名")
    private String bankAccountName;

    @ApiModelProperty(value = "银行卡账户")
    private String bankAccount;

    @ApiModelProperty(value = "银行名称")
    private String bankName;

    @ApiModelProperty(value = "开户行")
    private String openingBank;

    @ApiModelProperty(value = "支付宝账户")
    private String alipayAccount;

    @ApiModelProperty(value = "支付宝账户姓名")
    private String alipayAccountName;

    @ApiModelProperty(value = "身份证号")
    private String identityNumber;

    @ApiModelProperty(value = "年龄")
    private Integer age;

    @ApiModelProperty(value = "常住地址")
    private String address;

    @ApiModelProperty(value = "紧急联系人")
    private String emergencyContact;

    @ApiModelProperty(value = "紧急联系人电话")
    private String emergencyMobile;

    @ApiModelProperty(value = "紧急联系人地址")
    private String emergencyAddress;

    @ApiModelProperty(value = "户籍所在地")
    private String identityAddress;

    @ApiModelProperty(value = "驾驶证发证地")
    private String driveLicenseIssueplace;

    @ApiModelProperty(value = "民族（参加字典表）")
    private Integer nationality;

    @ApiModelProperty(value = "民族")
    private String nationalityStr;

    @ApiModelProperty(value = "编号")
    private Long officeId;

    @ApiModelProperty(value = "部门名")
    private String officeName;

    @ApiModelProperty(value = "名称")
    private String name;

    @ApiModelProperty(value = "区域编码")
    private String code;

    @ApiModelProperty(value = "车辆ID")
    private Long vehicleId;

    @ApiModelProperty(value = "总单量")
    private Integer alwaysSingular;

    @ApiModelProperty(value = "总流水")
    private BigDecimal totalWater;

    @ApiModelProperty(value = "出生年月日")
    private Date birthday;

    @ApiModelProperty(value = "出生年月日")
    private String birthdayStr;

    @ApiModelProperty(value = "城市名称")
    private String cityName;

    @ApiModelProperty(value = "性别")
    private String sex;

    @ApiModelProperty(value = "性别")
    private String sexStr;

    @ApiModelProperty(value = "信息ID")
    private Long infoId;

    @ApiModelProperty(value = "资格证有效期起始")
    private Date certificateValidityPeriodStartDate;

    @ApiModelProperty(value = "资格证有效期起始")
    private String certificateValidityPeriodStartDateStr;

    @ApiModelProperty(value = "资格证有效期截止")
    private Date certificateValidityPeriodEndDate;

    @ApiModelProperty(value = "资格证有效期截止")
    private String certificateValidityPeriodEndDateStr;

    @ApiModelProperty(value = "发证机构")
    private String licenseIssuingAgency;

    @ApiModelProperty(value = "发证日期")
    private Date releaseDate;

    @ApiModelProperty(value = "发证日期")
    private String releaseDateStr;

    @ApiModelProperty(value = "服务类型")
    private String serviceType;

    @ApiModelProperty(value = "业务类型")
    private Integer businessType;

    @ApiModelProperty(value = "业务类型")
    private String businessTypeStr;

    @ApiModelProperty(value = "是否开始接单 0 - 停止接单 1 - 开始接单")
    private Integer acceptancOrderStatus;

    @ApiModelProperty(value = "是否开始接单 0 - 停止接单 1 - 开始接单")
    private String acceptancOrderStatusStr;

    private String departmentsOfAttribution;

    private String officeCode;

    private String ownershipCompany;

    @ApiModelProperty(value = "钱包余额")
    private BigDecimal walletBanlance;

    @ApiModelProperty(value = "可提现金额")
    private BigDecimal cashBanlance;

    @ApiModelProperty(value = "提现中金额")
    private BigDecimal cashingBanlance;

    @ApiModelProperty(value = "冻结余额")
    private BigDecimal frozenBalance;

    @ApiModelProperty(value = "历史提现总金额")
    private BigDecimal cashTotal;

    private String driverCityId;

    @ApiModelProperty(value = "是否加入黑名单标志")
    private Integer isBlocked;

    @ApiModelProperty(value = "初次领证时间（网约车运输证）")
    private Date getDriverLicenseDate;

    @ApiModelProperty(value = "是否巡游出租车驾驶员")
    private Integer taxiDriver;

    @ApiModelProperty(value = "网约车证发证机构全程")
    private String netWorkCarIssueOrGanization;

    @ApiModelProperty(value = "网约车证发证时间")
    private Date getNetWorkCarProofDate;

    @ApiModelProperty(value = "网约车证有效期开始时间")
    private Date netWorkCarProofOn;

    @ApiModelProperty(value = "网约车证有效期结束时间")
    private Date netWorkCarProofOff;

    @ApiModelProperty(value = "驾驶员信息向服务所在地主管部门报备时间")
    private Date registerDate;

    @ApiModelProperty(value = "驾驶员合同签属公司")
    private String contractCompany;

    @ApiModelProperty(value = "合同起始时间")
    private Date contractOn;

    @ApiModelProperty(value = "合同截止时间")
    private Date contractOff;

}
